﻿using Practico2.Business;
using Practico2.DataTypes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Practico2.WebAccess
{
    public partial class AdministradorCiudades : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CompletarDDLPaises();
            }
        }

        private void CompletarDDLPaises()
        {
            ddlPaises.DataSource = PaisManager.ObtenerPaises();
            ddlPaises.DataTextField= "NombrePais";
            ddlPaises.DataValueField = "IdPais";
            ddlPaises.DataBind();
        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {

            if (Session["idCiudad"] != null)
            {
                DTCiudad nuevaCiudad = new DTCiudad();
                nuevaCiudad.IdCiudad = int.Parse(Session["idCiudad"].ToString());
                ddlPaises.SelectedItem.Text = Session["nombrePais"].ToString();
                nuevaCiudad.IdPais = int.Parse(Session["idPais"].ToString());
                nuevaCiudad.NombreCiudad = txtCiudad.Text;

                DTPais paisSeleccionado = PaisManager.ObtenerPaiseSegunId(nuevaCiudad.IdPais);
                DTCoordenada coordenadas = Helper.DameLatLng(txtCiudad.Text + "," + paisSeleccionado.AbreviacionPais);
                if (coordenadas != null)
                {
                    nuevaCiudad.LatitudCiudad = coordenadas.Latitud;
                    nuevaCiudad.LongitudCiudad = coordenadas.Longitud;

                    CiudadManager.ActualizarCiudad(nuevaCiudad);

                }

                Session.Remove("idCiudad");
                Session.Remove("idPais");
                Session.Remove("nombrePais");
                Session.Remove("nombreCiudad");

                Response.Redirect("AdministradorCiudades.aspx");
            }
            else
            {
                DTCiudad nuevaCiudad = new DTCiudad();
                nuevaCiudad.IdPais = int.Parse(ddlPaises.SelectedValue);
                nuevaCiudad.NombreCiudad = txtCiudad.Text;

                DTPais paisSeleccionado = PaisManager.ObtenerPaiseSegunId(nuevaCiudad.IdPais);
                DTCoordenada coordenadas = Helper.DameLatLng(txtCiudad.Text + "," + paisSeleccionado.AbreviacionPais);
                if (coordenadas != null)
                {
                    nuevaCiudad.LatitudCiudad = coordenadas.Latitud;
                    nuevaCiudad.LongitudCiudad = coordenadas.Longitud;

                    CiudadManager.AgregarCiudad(nuevaCiudad);

                    Response.Redirect("AdministradorCiudades.aspx");
                }
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            if (Session["idCiudad"] != null)
            {
                Session.Remove("idCiudad");
                Session.Remove("idPais");
                Session.Remove("nombrePais");
                Session.Remove("nombreCiudad");

                Response.Redirect("AdministradorCiudades.aspx");
            }
        }

        protected void GridViewCiudades_SelectedIndexChanged(object sender, EventArgs e)
        {
            //ir a la base de datos a buscar el id por nombre de pais

            DTPais paisSeleccionado = PaisManager.ObtenerPaiseSegunNombre(GridViewCiudades.Rows[GridViewCiudades.SelectedIndex].Cells[2].Text);

            ddlPaises.SelectedValue = paisSeleccionado.IdPais.ToString();
            txtCiudad.Text = GridViewCiudades.Rows[GridViewCiudades.SelectedIndex].Cells[3].Text;



            
            Session.Add("idCiudad", GridViewCiudades.Rows[GridViewCiudades.SelectedIndex].Cells[1].Text);
            Session.Add("idPais", ddlPaises.SelectedValue.ToString());
            Session.Add("nombreCiudad", GridViewCiudades.Rows[GridViewCiudades.SelectedIndex].Cells[3].Text);
            Session.Add("nombrePais", GridViewCiudades.Rows[GridViewCiudades.SelectedIndex].Cells[2].Text);

            
        }
    }
}